你完全可以理解量子信息(13)| 袁岚峰
解读科学,洞察本质
戳穿忽悠,粉碎谣言
导读对称密码体制本身是安全的,但分发密钥的信使是大漏洞。非对称密码体制不需要信使,但你又会担心它被数学方法破解。山重水复疑无路,柳暗花明又一村。当当当当当,英雄闪亮登场的时候到了!不错,我就是美貌与智慧并重,英雄与侠义的化身,……量子密码术!
前文参见: 你完全可以理解量子信息(1) | 袁岚峰
十三、为什么需要量子密码术?
我们终于说到了量子信息的最后一个应用“量子密码术”,也称为“量子保密通信”或者“量子密钥分发”。这是迄今唯一接近实用的量子信息应用,但这一个就具有极高的军事和商业价值,足以证明各国对量子信息的大力投入是物有所值的。所以,我们也要用最多的篇幅来比较详细地解释它。
在科学界的术语中,量子通信是一个广泛的研究领域,包括量子密码术、量子隐形传态和本文中没有介绍的“超密编码”等等。但由于量子密码术是唯一接近实用的,所以当媒体报道“量子通信”的时候,他们往往实际上指的就是量子密码术,即量子通信的一部分而非全部。这是我们在看新闻时需要注意的。
看“量子密码术”这个名字,就能知道这是一种保密的方法。为什么需要用量子力学的方法来保密呢?我们需要了解密码学的基本原理,才能明白量子密码术解决了传统密码术的什么“痛点”,以及量子因数分解对传统密码术造成了什么样的挑战。(敲黑板!)下面我们来上一堂简短的密码学课程。
把明文变换成密文,需要两个元素:变换的规则和变换的参数。前者是编码的算法,例如“在英文字母表上前进x步”。后者是密钥,例如上述算法中的x这个数。如果取x = 1,明文的“fly at once”(立即起飞)就会变成密文的“gmz bu podf”。
一般人常常以为,我用一个你想不到的算法,就能保密。但事实上,把希望寄托在算法不泄露上,是靠不住的。同一个算法很可能有许多人在用,这些人当中任何一个人都可能泄露算法。如果算法用到机器(例如二战中德国用的Enigma密码机),那么敌人只要得到一台机器,就可以知道算法。
闪电战创始人古德里安在指挥车上,左下方是Enigma密码机
只要你知道有一个人或一台机器泄露了算法,那么所有人的算法就都要换,这个工作量大得惊人。如果你没发现算法的泄露,那损失就更可怕了。例如在第二次世界大战中,德国和日本的密码系统早就被盟国破解了,而他们一直不知道,送上了无数机密。山本五十六的飞机,就是因为行程泄露被击落的。
那么,靠得住的是什么呢?所有的保密方法都是通过隐藏某些东西来实现的,需要隐藏的越少,安全性就越高,而最容易隐藏的是密钥。同一个算法可以有很多个密钥,使用同样算法的每一组人都可以用单独的密钥。如果有人泄露了一组密钥,用不着惊慌,只要更换一组密钥就行。即使你没发现密钥泄露,也只是这一组人的情报失窃,不会拖累其他人。
因此,密码学的一个基本原则是,在设计算法时,你必须假设敌人已经知道了算法和密文,唯一不知道的就是密钥。密码学的研究目标就是,让敌人在这种情况下破译不了密文。当然,你可以对算法保密,这可能会增加敌人的困难。但无论如何,不能把希望寄托在这上面。
最容易想到的保密框架,是通信双方都知道同一组密钥,A用它将明文转换成密文,B用它将密文变换回原文。《红灯记》、《潜伏》等谍战片中情报人员舍死忘生、殚精竭虑保护和争夺的密码本,就是密钥。由于通信双方都知道同一组密钥,所以这种方法叫做“对称密码体制”。
《红灯记》
对称密码体制究竟安全不安全呢?回答是:密码本身可以是安全的,但密钥的分发不安全。
我们先来解释前一句话:密码本身可以是安全的。信息论的创始人香农(Claude E. Shannon)证明了一个数学定理:密钥如果满足三个条件,那么通信就是“绝对安全”的。这里“绝对安全”是一个数学用语,它的意思是:敌人即使截获了密文,也无法破译出明文,他能做的最多也只是瞎猜而已。哪三个条件呢?一,密钥是一串随机的字符串;二,密钥的长度跟明文一样,甚至更长;三,每传送一次密文就更换密钥,即“一次一密”。满足这三个条件的密钥叫做“一次性便笺”。
稍微思考一下,就能理解香农的定理。比如说,你拿到的密文是一个8位的字符串DHDSBFKF,这其中每一位的原文都是另外一个字符,对应规则都是“在英文字母表上前进x步”,但x对每一位都单独取值(这就需要密钥的长度至少跟原文一样,即第二个条件),而且是随机的(第一个条件)。例如第一位的x = 1,把原文的C变成密文的D,第二位的x = 3,把原文的E变成密文的H。如果你是敌对方,你如何猜出原文?
有一个常用的办法是基于英文中各个字母使用频率的不同(最常见的前五位是E、T、A、O、I),统计密文中每个字母出现的频率。但这只适用于每一位的变换规则都相同的情况(即只有一个统一的x),而在这里每一位都有自己随机的x,这一招就用不上了。如果不是一次一密(第三个条件),你还可以连续截获好几份密文,然后在多份密文的同一个位置做这种频率分析。但加上一次一密之后,连这个仅存的希望也破灭了。因此,你除了瞎蒙之外,还能干什么呢?
我们再来解释后一句话:密钥的分发不安全。香农的定理听起来好像已经解决了保密通信的问题,但其实没有。真正的难题在于,怎么把密钥从一方传给另一方?
在现实生活中,需要第三方的信使来传递。而信使可能被抓(如《红灯记》中的李玉和)或者叛变(如《红岩》中的甫志高),这麻烦就大了。最好是不通过信使,通信双方直接见面分享密钥。但是如果双方可以轻易见面,还要通信干什么?
有人可能会想到一个“机智”的主意,让信使一次就配送尽可能多的密钥,足以在很长时间内使用,比如说足够传输一亿次。但即使先不问“第一亿零一次怎么办”,你也很快就会明白,这只是把泄密的风险从密钥的配送(部分地)转移到密钥的保存而已。只要你手里有个密钥,敌人就可能来偷,而你手里的密钥越多,在使用前保存的时间越长,被偷走的风险就越大。为了把密钥保存的困难降到最低,最好是只保存一次使用的密钥,一拿到立刻就用掉,但那样需要的配送次数又是最多的。难哪!
为了解决密钥配送和保存的问题,聪明的数学家们想出了另外一套办法,称为“非对称密码体制”或者“公钥密码体制”。现在不需要信使了,李铁梅和余则成可以光荣下岗了。为什么可以做到这样呢?请注意,解密只是接收方B的事,发送方A并不需要解密,他们只要能加密就行。
那好,B打造一把“锁”和相应的“钥匙”,把打开的锁公开寄给A。A把文件放到箱子里,用这把锁锁上,再公开把箱子寄给B。B用钥匙打开箱子,信息传输就完成了。
如果有敌对者截获了箱子,他没有钥匙打不开锁,仍然无法得到文件。这里的“锁”是公开的,任何人都能得到,所以叫做“公钥”,而“钥匙”只在B手里有,所以叫做“私钥”。
这种巧妙的思想,实现的关键在于:有了私钥可以很容易地得到公钥,而有了公钥却很难得到私钥。就是说,有些事情沿着一个方向操作很容易,逆向操作却非常困难,“易守难攻”。因数分解就是一个典型例子。这就是因数分解能用于密码术的原因,上文所述的RSA密码体系就以此为基础。
然而,公钥密码体制仍然不能保证绝对安全。无论是经典的还是量子的算法,都在不断改进。RSA在理论上已经被量子的因数分解算法攻克了。你当然可以寻找其他的易守难攻的数学问题(这是一个活跃的研究领域),但谁也无法保证将来的算法进步是不是能破解这个问题,这会成为一场无穷无尽的猫捉老鼠的游戏。更可怕的是,有可能敌对国家或组织已经找到解密的算法了,而你还不知道!
我们来总结一下传统密码术的困境。对称密码体制本身是安全的,但分发密钥的信使是大漏洞。非对称密码体制不需要信使,但你又会担心它被数学方法破解。两难。
山重水复疑无路,柳暗花明又一村。当当当当当,英雄闪亮登场的时候到了!不错,我就是美貌与智慧并重,英雄与侠义的化身,……量子密码术!
我就是美貌与智慧并重,英雄与侠义的化身:唐伯虎
咳咳,量子密码术做的是什么呢?其实是回到对称密码体制,但取消信使。也就是说,不通过信使,就能让双方直接共享密钥。这样就吸收了对称和非对称两种密码体制的优点,克服了它们的缺点,实现了一种真正无懈可击的保密通信。
怪哉,不通过信使怎么共享密钥?关键在于,这里的密钥并不是预先就有的,一方拿着想交给另一方。(地下党组织:李玉和同志,这是密电码,这个光荣而艰巨的任务就交给你了。)在初始状态中,密钥并不存在!(地下党组织:李玉和同志,我们没有任何东西要交给你,解散!)
量子密钥是在双方建立通信之后,通过双方的一系列操作产生出来的。利用量子力学的特性,可以使双方同时在各自手里产生一串随机数,而且不用看对方的数据,就能确定对方的随机数序列和自己的随机数序列是完全相同的。这串随机数序列就被用作密钥。量子密钥的产生过程,同时就是分发过程,——这就是量子密码术不需要信使的原因。
关于量子密钥的特点,还可以再解释得详细一点。量子密钥是一串随机的字符串,长度可以任意长,而且每次需要传输信息时都重新产生一段密钥,这样就完全满足了香农定理的三个要求(密钥随机,长度不低于明文,一次一密),因此用量子密钥加密后的密文是不可破译的。
双方都有了密钥之后,剩下的事情就跟经典的通信完全相同了:A把明文用密钥编码成密文,然后用任意的通信方式发给B。“任意的”通信方式的意思就是“怎么都行”:可以用电话,可以用电报,可以用电子邮件,甚至用平信都行。香农的定理保证了这一步不怕任何敌人,因为截获了也破译不了。
因此,量子保密通信的全过程包括两步。第一步是密钥的产生,这一步用到量子力学的特性,需要特别的方案和设备。第二步是密文的传输,这一步就是普通的通信,可以利用任何现成的通信方式和设施。量子保密通信所有的奇妙之处都在第一步上,所以它又被叫做“量子密钥分发”,这是业内人士常用的一个技术性的名称。
(未完待续)
背景简介:本文作者为袁岚峰,中国科学技术大学化学博士,中国科学技术大学合肥微尺度物质科学国家实验室副研究员,科技与战略风云学会会长,微博@中科大胡不归,知乎@袁岚峰(https://www.zhihu.com/people/yuan-lan-feng-8)。本文应新浪科技之邀,2017年8月31日以《<科学大家>| 4万字干货!你完全可以理解量子信息》为题发表于新浪科技“科学大家”栏目(http://tech.sina.com.cn/d/2017-08-31/doc-ifykpysa2199081.shtml)。
致谢:感谢中国科学技术大学合肥微尺度物质科学国家实验室陈宇翱教授、陈腾云博士、彭新华教授、陆朝阳教授、张强教授、张文卓博士和清华大学交叉信息研究院尹璋琦博士、物理系王向斌教授在科学内容方面的指教。
责任编辑:孙远
知乎专栏:
http://zhuanlan.zhihu.com/fengyun
一点资讯:
http://www.yidianzixun.com/home?page=channel&id=m107089
今日头条:
http://toutiao.com/m6256575842